4c9ec4249a8d6cf918cf2f68b94d79496e539f73,enterprise/main/java/org/neo4j/kernel/ha/MasterClient.java,MasterClient,getChannel,#,95
Before Change
if ( channel == null )
{
// Get unused or create if no unused found
channel = unusedChannels.poll();
if ( channel == null )
{
ChannelFuture channelFuture = bootstrap.connect(
new InetSocketAddress( hostNameOrIp, port ) );
After Change
if ( channel == null )
{
// Get unused channel from the channel pool
while ( channel == null )
{
Channel unusedChannel = unusedChannels.poll();
if ( unusedChannel == null )
{
break;
}
else if ( unusedChannel.isConnected() )
{
System.out.println( "Found unused (and still connected) channel" );
channel = unusedChannel;
}
else
{
System.out.println( "Found unused stale channel, discarding it" );
}
}
// No unused channel found, create a new one
if ( channel == null )
{
ChannelFuture channelFuture = bootstrap.connect(
new InetSocketAddress( hostNameOrIp, port ) );
channelFuture.awaitUninterruptibly();
channel = channelFuture.getChannel();
System.out.println( "Opened a new channel" );
}
channels.put( thread, channel );